home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / XAMPP 1.4.14 / xampp-win32-1.4.14-installer.exe / xampp / mysql / scripts / make_win_binary_distribution < prev    next >
Text File  |  2005-04-01  |  5KB  |  186 lines

  1. #!/bin/sh
  2.  
  3. #
  4. # Script to create a Windows binary package
  5. #
  6. # This is intended to be used under Cygwin, and will generate
  7. # an archive named in the form mysql<suffix>-<version>-noinstall.zip
  8.  
  9. version=4.1.11
  10.  
  11. DEBUG=0
  12. SUFFIX=""
  13. DIRNAME=""
  14. EXTRA=""
  15.  
  16. #
  17. # This script must run from MySQL top directory
  18. #
  19.  
  20. if [ ! -f scripts/make_win_binary_distribution ]; then
  21.   echo "ERROR : You must run this script from the MySQL top-level directory"
  22.   exit 1
  23. fi
  24.  
  25. #
  26. # Debug print of the status
  27. #
  28.  
  29. print_debug()
  30. {
  31.   for statement
  32.   do
  33.     if [ "$DEBUG" = "1" ] ; then
  34.       echo $statement
  35.     fi
  36.   done
  37. }
  38.  
  39. #
  40. # Usage of the script
  41. #
  42.  
  43. show_usage()
  44. {
  45.   echo "MySQL utility script to create a Windows binary package"
  46.   echo ""
  47.   echo "This is intended to be used under Cygwin, and will generate"
  48.   echo "an archive named in the form mysql<suffix>-<version>-noinstall.zip"
  49.   echo "Takes the following arguments:"
  50.   echo ""
  51.   echo "  --dirname  Directory to use for copying files"
  52.   echo "  --extra    Directory to get extra files from"
  53.   echo "  --suffix   Name to append to 'mysql' for this binary"
  54.   echo "  --help     Show this help message"
  55.   exit 0
  56. }
  57.  
  58. #
  59. # Parse the input arguments
  60. #
  61.  
  62. parse_arguments() {
  63.   for arg do
  64.     case "$arg" in
  65.       --debug)    DEBUG=1;;
  66.       --extra=*) EXTRA=`echo "$arg" | sed -e "s;--extra=;;"` ;;
  67.       --suffix=*) SUFFIX=`echo "$arg" | sed -e "s;--suffix=;;"` ;;
  68.       --dirname=*) DIRNAME=`echo "$arg" | sed -e "s;--dirname=;;"` ;;
  69.       --help)     show_usage ;;
  70.       *)
  71.   echo "Unknown argument '$arg'"
  72.   exit 1
  73.       ;;
  74.     esac
  75.   done
  76. }
  77.  
  78. parse_arguments "$@"
  79.  
  80. if [ -z "$DIRNAME" ]; then
  81.   $DIRNAME="dist"
  82. fi
  83.  
  84. print_debug "Making directories"
  85. mkdir $DIRNAME
  86. $DIRNAME="$DIRNAME/mysql-$version"
  87. mkdir $DIRNAME
  88.  
  89. for dir in bin lib lib/opt lib/debug Embedded Embedded/DLL Embedded/DLL/debug Embedded/DLL/release Embedded/static Embedded/static/release examples examples/libmysqltest
  90. do
  91.   mkdir $DIRNAME/$dir
  92. done
  93.  
  94. if [ $EXTRA ]; then
  95.   print_debug "Copying extra files"
  96.   cp -fr $EXTRA/* $DIRNAME
  97. fi
  98.  
  99. # Dirs to be copied as-is
  100. for dir in data Docs include scripts share
  101. do
  102.   print_debug "Copying $dir to $DIRNAME/"
  103.   cp -fr $dir $DIRNAME
  104. done
  105.  
  106. print_debug "Copying tests to $DIRNAME/examples/"
  107. cp -fr tests $DIRNAME/examples
  108.  
  109. print_debug "Copying sql-bench to $DIRNAME/bench"
  110. mkdir $DIRNAME/bench
  111. cp -fr sql-bench/* $DIRNAME/bench
  112.  
  113. print_debug "Copying mysql-test to $DIRNAME/mysql-test"
  114. mkdir $DIRNAME/mysql-test
  115. cp -fr mysql-test/* $DIRNAME/mysql-test
  116.  
  117. print_debug "Copying support-files to $DIRNAME"
  118. cp support-files/* $DIRNAME
  119.  
  120. # Files for bin
  121. for i in client_release/* client_debug/mysqld.exe lib_release/libmySQL.dll
  122. do
  123.   print_debug "Copying $i to $DIRNAME/bin"
  124.   cp $i $DIRNAME/bin
  125. done
  126.  
  127. # Files for include
  128. for i in libmysql/libmysql.def libmysqld/libmysqld.def
  129. do
  130.   print_debug "Copying $i to $DIRNAME/include"
  131.   cp $i $DIRNAME/include
  132. done
  133.  
  134. # Windows users are used to having dbug.h ?
  135. cp include/my_dbug.h $DIRNAME/include/dbug.h
  136.  
  137. # Libraries found in lib_release and lib_debug
  138. for i in libmySQL.dll libmysql.lib zlib.lib mysqlclient.lib mysys.lib regex.lib strings.lib
  139. do
  140.   print_debug "Copying lib_release/$i to $DIRNAME/lib/opt"
  141.   cp lib_release/$i $DIRNAME/lib/opt
  142.   print_debug "Copying lib_debug/$i to $DIRNAME/lib/debug"
  143.   cp lib_debug/$i $DIRNAME/lib/debug
  144. done
  145.  
  146. print_debug "Copying lib_release/mysys-max.lib to $DIRNAME/lib/opt"
  147. cp lib_release/mysys-max.lib $DIRNAME/lib/opt
  148.  
  149. # Embedded server
  150. for i in libmysqld.dll libmysqld.lib libmysqld.exp
  151. do
  152.   print_debug "Copying lib_release/$i to $DIRNAME/Embedded/DLL/release"
  153.   cp lib_release/$i $DIRNAME/Embedded/DLL/release
  154.   print_debug "Copying lib_debug/$i to $DIRNAME/Embedded/DLL/debug"
  155.   cp lib_debug/$i $DIRNAME/Embedded/DLL/debug
  156. done
  157.  
  158. # Static embedded
  159. print_debug "Copying lib_release/mysqlserver.lib to $DIRNAME/Embedded/static/release"
  160. cp lib_release/mysqlserver.lib $DIRNAME/Embedded/static/release
  161.  
  162. # libmysqltest
  163. for i in mytest.c mytest.dsp mytest.dsw mytest.exe
  164. do
  165.   print_debug "Copying libmysqltest/release/$i to $DIRNAME/examples/libmysqltest"
  166.   cp libmysqltest/release/$i $DIRNAME/examples/libmysqltest
  167. done
  168.  
  169. print_debug "Copying README.txt"
  170. cp README.txt $DIRNAME
  171.  
  172. if [ -f MySQLEULA.txt ]; then
  173.   print_debug "Commercial version: copying MySQLEULA.txt"
  174.   cp MySQLEULA.txt $DIRNAME
  175.   rm $DIRNAME/Docs/COPYING
  176. else
  177.   print_debug "GPL version: copying COPYING"
  178.   cp Docs/COPYING $DIRNAME
  179. fi
  180.  
  181. print_debug "Invoking zip to package the binary"
  182. zip -r mysql$SUFFIX-$version-win-noinstall.zip $DIRNAME
  183.  
  184. print_debug "Deleting intermediate directory"
  185. rm -rf $DIRNAME
  186.